/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.documentar.DAO;

import br.com.documentar.interfacee.InterfaceDAO;
import br.com.documentar.model.ColaboradorModel;
import java.sql.SQLException;
import java.util.List;

/**
 *
 * @author Robertto
 */
public class ColaboradorDAO extends AbstractDAO
        implements InterfaceDAO<List<ColaboradorModel>, ColaboradorModel> {

    @Override
    public boolean setDados(ColaboradorModel model) {
        String sql = null;
        ConnectDataBase();
        switch (model.getActionScript()) {
            case "I":
                sql = "INSERT INTO \n"
                        + "  `tcol_colaborador`\n"
                        + "(\n"
                        //+ "  `TCOL_CODIGO_PK`,\n"
                        + "  `TCOL_SETOR_FK`,\n"
                        + "  `TCOL_REVENDA_FK`,\n"
                        + "  `TCOL_TIPO`,\n"
                        + "  `TCOL_NOME`,\n"
                        + "  `TCOL_EMAIL`,\n"
                        + "  `TCOL_SENHA`,\n"
                        + "  `TCOL_ATIVO`) \n"
                        + "VALUE (\n"
                        //+ "  :TCOL_CODIGO_PK,\n"
                        + "  " + model.getSetor().getCodigo() + ",\n"
                        + "  " + model.getRevendaModel().getCodigo() + ",\n"
                        + "  '" + model.getTipo() + "',\n"
                        + "  '" + model.getNome() + "',\n"
                        + "  '" + model.getEmail() + "',\n"
                        + "  '" + model.getSenha() + "',\n"
                        + "  '" + model.getAtivo() + "')";
                break;
            case "U":
                sql = "UPDATE \n"
                        + "  `tcol_colaborador`  \n"
                        + "SET \n"
                        + "  `TCOL_SETOR_FK` = " + model.getSetor().getCodigo() + ",\n"
                        + "  `TCOL_REVENDA_FK` = " + model.getRevendaModel().getCodigo() + ",\n"
                        + "  `TCOL_TIPO` = '" + model.getTipo() + "',\n"
                        + "  `TCOL_NOME` = '" + model.getNome() + "',\n"
                        + "  `TCOL_EMAIL` = '" + model.getEmail() + "',\n"
                        + "  `TCOL_SENHA` = '" + model.getSenha() + "' ,\n"
                        + "  `TCOL_ATIVO` = '" + model.getAtivo() + "'\n"
                        + "WHERE \n"
                        + "  `TCOL_CODIGO_PK` = " + model.getCodigo() + "";
                break;
            case "D":
                sql = "DELETE FROM \n"
                        + "  `tcol_colaborador` \n"
                        + "WHERE \n"
                        + "  `TCOL_CODIGO_PK` = " + model.getCodigo() + "";
                break;
        }
        return InsertUpdateDelete(sql, model.getNomeTela());
    }

    @Override
    public List<ColaboradorModel> getDados(ColaboradorModel model) {
        model.setResultSet(null);
        model.getListaColaborador().clear();
        String sql = "SELECT `colaborador`.`TCOL_CODIGO_PK`, \n"
                + "                   `colaborador`.`TCOL_SETOR_FK`, \n"
                + "                   `setor`.`TSET_NOME`, \n"
                + "                   revenda.TREV_CODIGO_PK,\n"
                + "                   revenda.TREV_NOME,\n"
                + "                   `colaborador`.`TCOL_TIPO`, \n"
                + "                   `colaborador`.`TCOL_NOME`, \n"
                + "                   `colaborador`.`TCOL_EMAIL`, \n"
                + "                   `colaborador`.`TCOL_SENHA`, \n"
                + "                   `colaborador`.`TCOL_ATIVO`  \n"
                + "                 FROM  \n"
                + "                   `tcol_colaborador` colaborador \n"
                + "                   inner join `tset_setor` setor on `colaborador`.`TCOL_SETOR_FK` = `setor`.`TSET_CODIGO_PK`\n"
                + "                   inner join `trev_revenda` revenda on revenda.TREV_CODIGO_PK = colaborador.TCOL_REVENDA_FK";
        try {
            ConnectDataBase();
            switch (model.getActionScript()) {
                case "C":
                    model.setResultSet(Select(sql, model.getNomeTela()));
                    break;
                case "P":
                    model.setResultSet(Select(sql + "   where `colaborador`.`TCOL_NOME` like '%" + model.getNome() + "%'", model.getNomeTela()));
                    break;
                case "porCodigo":
                    model.setResultSet(Select(sql + "   where `colaborador`.`TCOL_CODIGO_PK` = " + model.getCodigo() + " ", model.getNomeTela()));
                    break;
            }
            while (model.getResultSet().next()) {
                br.com.documentar.model.ColaboradorModel p = new br.com.documentar.model.ColaboradorModel();
                p.setCodigo(rs.getInt("TCOL_CODIGO_PK"));
                p.getSetor().setCodigo(rs.getInt("TCOL_SETOR_FK"));
                p.getSetor().setNome(rs.getString("TSET_NOME"));
                p.getRevendaModel().setCodigo(rs.getInt("TREV_CODIGO_PK"));
                p.getRevendaModel().setNome(rs.getString("TREV_NOME"));
                p.setTipo(rs.getString("TCOL_TIPO").charAt(0));
                p.setNome(rs.getString("TCOL_NOME"));
                p.setEmail(rs.getString("TCOL_EMAIL"));
                p.setSenha(rs.getString("TCOL_SENHA"));
                p.setAtivo(rs.getString("TCOL_ATIVO").charAt(0));
                model.getListaColaborador().add(p);
            }
        } catch (SQLException ex) {
            ex.getStackTrace();
        } finally {
            Desconectar(model.getNomeTela());
        }
        return model.getListaColaborador();
    }
}
